#include"processBar.h"
#include<unistd.h>

typedef void(*callback_t)(int);//callback是函数指针类型

//模拟一种安装/下载
void download(callback_t cb)
{
    int total = 1000;//总共的数据大小
    int curr = 0;//已经下载好的数据大小
    while(curr <= total)
    {
         processbar(curr*100/total);//返回rate，*100使小数变整数，后面直接加%
         //进行着某种下载的任务
         usleep(50000);//模拟下载花费的时间
         int rate = curr*100/total;//更新进度
         
         cb(rate);//通过回调，展示进度
         
         curr += 10;//循环下载了一部分，更新进度
    }
    printf("\n");
}

int main()
{
    printf("donwnload 1: \n");
    download(processbar);//传递回调方法，在工作的时候顺便把进度条回调显示
  initbar(); 
    printf("donwnload 2: \n");
    download(processbar);
  initbar(); 
    printf("donwnload 3: \n");
    download(processbar);
  initbar(); 
    printf("donwnload 4: \n");
    download(processbar);
  initbar(); 
    return 0;
}
